<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../plugins/vue.min.js"></script>
</head>
<body>
    <div id="box">
        <!-- 改变里面的值 -->
        <!-- 注意点:    不带:动态绑定的话,那就是字符串,false,true也都是字符串,识别不了是Boolean值
        加上:动态绑定,相当于是js,就可以识别 -->
        <!-- 也不能写成isShow,驼峰命名,,,,, -->
        <!-- <navbar myname="人类" :is-show="false"></navbar> -->
        <navbar myname="怪兽" :is-show="false"></navbar>

        <!-- 什么都不传,那就是默认值 -->
        <navbar myname="怪兽"></navbar>
    </div>
  
    <script>
    
        Vue.component("navbar",{
            // 接收myname属性,不接收的话那么就不能使用这个值
            // 此方法传递参数,不会出现报错信息,采取下面对象的形式
            // props:["myname",,"isShow"],


            // 对象形式  接收属性,属性校验   --无法解决当出现当没有参数,默认都显示的情况
            // props:{
            //     myname:String,
            //     isShow:Boolean
            // },

            
            // 究极写法
            props:{
                myname:{
                    type:String,
                    // 默认值  就算是不传递myname,默认值是""
                    default:""
                },
                isShow:{
                    type:Boolean,
                    default:true
                }
            },
            template:`<div style="background-color: red;width: 100px;height: 100px;">
                <button>点击左</button>
                <span>{{myname}}</span>
                <button v-if="isShow">点击右</button>
                </div>
            `
        })  
        // 根组件
        new Vue({
            el:"#box",
            data:{

            }
        })
    </script>
</body>
</html>